package com.cell.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 用户实体，通过states来区分不同用户的身份，无特殊说明的字段都需要前端传入
 *
 * @author cloudJiang
 * @date 2022/5/11 15:25
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {

    /**
     * 用户id  自动生成 前端输入空即可
     * 昵称    不可重复 长度30
     * 用户头像地址
     * 用户登录密码 长度100
     * 登陆凭证 （填入邮箱） 长度30  前端校验
     * 手机号
     */
    Integer id;
    String nickname;
    String iconUrl;
    String password;
    String loginKey;
    String phone;

    /**
     * 使用states来区分用户
     * <p>
     * 普通用户 personal 0
     * 小区代理 community 1
     * 区域代理 district 2
     * 城市代理 City 3
     * <p>
     * 普通用户地址描述字段都不能为空，
     * 小区代理locationDetails可以为空，
     * 区域代理community 和 locationDetails 可以为空，
     * 城市代理district 和 community 和 locationDetails可以为空
     */
    Byte states;
    /**
     * 国   省   城市   区域  社区名 长度20
     */
    String country;
    String province;
    String city;
    String district;
    String community;
    /**
     * 详细地址，精确到门牌号 长度50
     */
    String locationDetails;

    /**
     * 用户验证码，每次生成后存储在不同用户对象里，避免验证码混乱
     */
    String validCode;
}
